A dialog system has a text or audio interface, allowing a human to interact with the system. Particularly advantageous are ‘natural language’ dialog systems that interact using a language syntax that is ‘natural’ to a human. A dialog system is a computer or an Interactive Voice Response (IVR) system that operates under the control of a dialog application that defines the language syntax, and in particular the prompts and grammars of the syntax. For example, IVRs, such as Nortel's Periphonics™ IVR, are used in communications networks to receive voice calls from parties. An IVR is able to generate and send voice prompts to a party and receive and interpret the party's voice responses made in reply. However, the development of a dialog system is cumbersome and typically requires expertise in both programming and the development of grammars that provide language models. Consequently, the development process is often slower than desired.
One approach to reducing the time and expertise of developing natural language dialog systems is to use processes whereby a relatively small amount of data describing the task to be performed is provided to a development system. The development system can then transform this data into system code and configuration data that can be deployed on a dialog system, as described in International Patent Publication number WO 00/78022, A Method of Developing An Interactive System (“Starkie”). However, one difficulty of this process is that the development system needs to make numerous assumptions, some of which may result in the creation of prompts that, while understandable to most humans, could be expressed in a manner more easily understood by humans. For example, a prompt may be created that prompts a person to provide the name of company whose stocks they wish to purchase. The development system might create a prompt such as “Please say the company”, whereas the phrase “Please say the name of the company whose stocks you wish to purchase” may be more understandable to a human interacting with the dialog system.
Another approach, described in Starkie, for reducing the time and expertise requirements for developing a natural language dialog system is to use processes whereby developers provide examples of sentences that a human would use when interacting with the dialog system. A development system can convert these example sentences into a grammar that can be deployed on a computer or IVR. This technique is known as grammatical inference. Successful grammatical inference results in the creation of grammars that:                (i) cover a large proportion of the phrases that people will use when interacting with the dialog system;        (ii) attach the correct meaning to those phrases        (iii) only cover a small number of phrases that people won't use when interacting with the dialog system; and        (iv) require the developer to provide a minimal number of example phrases.        
The use of grammatical inference to build a dialog system is an example of development by example, whereby a developer can specify a limited set of examples of how the dialog system should behave, rather than developing a system that defines the complete set of possible examples.
Thus a development system can be provided with a list of interactions between a human and a dialog system using a notation that lists the sentences in the order they are spoken or written, indicating whether it is either the dialog system or the human that is speaking (or writing). This is referred to as an example interaction. Similarly, an example interaction can be defined by recording or transcribing the interactions between two or more humans. A benefit of this technique is that example interactions are understandable to anybody who understands the language contained within them. In addition, most people would be capable of creating example interactions of desired behaviour. There is also the benefit that example interactions describe specific behaviours, given a set of inputs, and therefore provide test cases for the behaviour of the dialog system. As they document specific behaviour, there is also a reduced risk of errors being introduced in the specification of the dialog system for the given behaviour listed in the example interactions. Example interactions are also ideal forms of documentation to describe the behaviour of the dialog system to others.
Example interactions can be annotated to include high level descriptions of the meaning of a sentence. This annotation might include the class of the sentence, and any key pieces of information contained in the phrase, known as slots. For example, the sentence “I want to buy three hundred acme bolt shares” might be annotated to signify that the class of the sentence is buy_stocks as opposed to sell_stocks, and that the quantity slot of the sentence is 300, while the stockname slot is “acme bolt”.
An example interaction can be converted into a model that describes a sequence of sentence classes. One example of such a model is a state machine. A state machine is a model that causes an action or output to take place, depending upon the input it receives. A state machine can react differently to the same input, depending upon its current state. The state of a state machine can also change depending upon the input it receives. For example, a dialog system may respond differently to the sentence “yes i'm sure” depending upon whether it has just asked the question “are you sure you want to quit?” or the sentence “are you sure that you want to buy three hundred shares of acme bolt?”.
Grammatical inference techniques can be used to create a state machine that can generate a sequence of symbols, using an example set of sequences. These techniques are typically applied to the creation of a class of grammars known as regular grammars. As a result, a state machine that defines all of the valid sequences of sentence classes in a dialog system can be inferred from a limited set of example interactions. To do this with a minimal number of training examples requires some assumptions to be made. In particular, this approach suffers from the following difficulties:                (i) The example dialogs need to be constrained in some way to allow easy generalisation. For instance, it is extremely difficult, if not impossible, for a current state of the art development system to automatically build a dialog system from a set of example interactions between two humans.        (ii) Specifying a dialog system using only a set of example interactions may require a large number of example interactions. The difficulty in doing this may outweigh any benefit of reduced speed of development.        (iii) Sentences in the set of example interactions need to be annotated consistently.        (iv) A set of example interactions contains only information that is visible to someone interacting with the dialog system. Example interactions contain sentences created by the dialog system and the human interacting with it, but not the sequence of internal interactions required to make decisions as to what sentences should be spoken by the dialog system.        
Thus a development system for dialog systems that uses only example interactions is unlikely to meet the objectives of reduced development time and expertise. It is desired to provide a system and process for developing a dialog system that alleviate one or more of the above difficulties, or at least provide a useful alternative to existing development systems and processes.